#pragma once

// defines ------------------------------------------------------------------------------------------------------------

#define PORT_MODE_OFF "off"
#define PORT_MODE_ON  "on"

#define PORT_STATUS_DOWN "down"
#define PORT_STATUS_UP   "up"

#define PORT_ADV_ALL "all"

#define PORT_INTERFACE_TYPE_NONE  "none"
#define PORT_INTERFACE_TYPE_CR    "cr"
#define PORT_INTERFACE_TYPE_CR2   "cr2"
#define PORT_INTERFACE_TYPE_CR4   "cr4"
#define PORT_INTERFACE_TYPE_CR8   "cr8"
#define PORT_INTERFACE_TYPE_SR    "sr"
#define PORT_INTERFACE_TYPE_SR2   "sr2"
#define PORT_INTERFACE_TYPE_SR4   "sr4"
#define PORT_INTERFACE_TYPE_SR8   "sr8"
#define PORT_INTERFACE_TYPE_LR    "lr"
#define PORT_INTERFACE_TYPE_LR4   "lr4"
#define PORT_INTERFACE_TYPE_LR8   "lr8"
#define PORT_INTERFACE_TYPE_KR    "kr"
#define PORT_INTERFACE_TYPE_KR4   "kr4"
#define PORT_INTERFACE_TYPE_KR8   "kr8"
#define PORT_INTERFACE_TYPE_CAUI  "caui"
#define PORT_INTERFACE_TYPE_GMII  "gmii"
#define PORT_INTERFACE_TYPE_SFI   "sfi"
#define PORT_INTERFACE_TYPE_XLAUI "xlaui"
#define PORT_INTERFACE_TYPE_KR2   "kr2"
#define PORT_INTERFACE_TYPE_CAUI4 "caui4"
#define PORT_INTERFACE_TYPE_XAUI  "xaui"
#define PORT_INTERFACE_TYPE_XFI   "xfi"
#define PORT_INTERFACE_TYPE_XGMII "xgmii"

#define PORT_FEC_NONE "none"
#define PORT_FEC_RS   "rs"
#define PORT_FEC_FC   "fc"
#define PORT_FEC_AUTO "auto"

#define PORT_LEARN_MODE_DROP         "drop"
#define PORT_LEARN_MODE_DISABLE      "disable"
#define PORT_LEARN_MODE_HARDWARE     "hardware"
#define PORT_LEARN_MODE_CPU_TRAP     "cpu_trap"
#define PORT_LEARN_MODE_CPU_LOG      "cpu_log"
#define PORT_LEARN_MODE_NOTIFICATION "notification"

#define PORT_ROLE_EXT "Ext"
#define PORT_ROLE_INT "Int"
#define PORT_ROLE_INB "Inb"
#define PORT_ROLE_REC "Rec"
#define PORT_ROLE_DPC "Dpc"

#define PORT_PT_TIMESTAMP_TEMPLATE_1 "template1"
#define PORT_PT_TIMESTAMP_TEMPLATE_2 "template2"
#define PORT_PT_TIMESTAMP_TEMPLATE_3 "template3"
#define PORT_PT_TIMESTAMP_TEMPLATE_4 "template4"

#define PORT_ALIAS                 "alias"
#define PORT_INDEX                 "index"
#define PORT_LANES                 "lanes"
#define PORT_SPEED                 "speed"
#define PORT_AUTONEG               "autoneg"
#define PORT_ADV_SPEEDS            "adv_speeds"
#define PORT_INTERFACE_TYPE        "interface_type"
#define PORT_ADV_INTERFACE_TYPES   "adv_interface_types"
#define PORT_FEC                   "fec"
#define PORT_MTU                   "mtu"
#define PORT_TPID                  "tpid"
#define PORT_PFC_ASYM              "pfc_asym"
#define PORT_LEARN_MODE            "learn_mode"
#define PORT_LINK_TRAINING         "link_training"
#define PORT_PREEMPHASIS           "preemphasis"
#define PORT_IDRIVER               "idriver"
#define PORT_IPREDRIVER            "ipredriver"
#define PORT_PRE1                  "pre1"
#define PORT_PRE2                  "pre2"
#define PORT_PRE3                  "pre3"
#define PORT_MAIN                  "main"
#define PORT_POST1                 "post1"
#define PORT_POST2                 "post2"
#define PORT_POST3                 "post3"
#define PORT_ATTN                  "attn"
#define PORT_OB_M2LP               "ob_m2lp"
#define PORT_OB_ALEV_OUT           "ob_alev_out"
#define PORT_OBPLEV                "obplev"
#define PORT_OBNLEV                "obnlev"
#define PORT_REGN_BFM1P            "regn_bfm1p"
#define PORT_REGN_BFM1N            "regn_bfm1n"
#define PORT_CUSTOM_SERDES_ATTRS   "custom_serdes_attrs"
#define PORT_ROLE                  "role"
#define PORT_ADMIN_STATUS          "admin_status"
#define PORT_DESCRIPTION           "description"
#define PORT_SUBPORT               "subport"
#define PORT_PT_INTF_ID            "pt_interface_id"
#define PORT_PT_TIMESTAMP_TEMPLATE "pt_timestamp_template"
#define PORT_DAMPING_ALGO          "link_event_damping_algorithm"
#define PORT_MAX_SUPPRESS_TIME     "max_suppress_time"
#define PORT_DECAY_HALF_LIFE       "decay_half_life"
#define PORT_SUPPRESS_THRESHOLD    "suppress_threshold"
#define PORT_REUSE_THRESHOLD       "reuse_threshold"
#define PORT_FLAP_PENALTY          "flap_penalty"
#define PORT_MODE                  "mode"
#define PORT_UNRELIABLE_LOS        "unreliable_los"
